package com.ccjq.shosestore.order.dao;

import com.ccjq.shosestore.core.basedao.BaseDao;
import com.ccjq.shosestore.order.model.OrderModel;

import java.sql.SQLException;
import java.util.List;

public interface OrdersDao extends BaseDao {
    /**
     * 根据用户id，查询订单概略列表
     * 仅展示OrdersModel模型中的orderId（订单编号）、createTime（生成时间）、amout（总金额）三条属性
     * @param userId 用户唯一标识
     * @return List<OrderBo> 订单模型的集合
     */
    List<OrderModel> queryOrdersByUserId(String userId, int currentRow);

    /**
     * 根据订单编号，查询指定订单详细信息
     * 商品详细信息使用List<String[]> shopInfo进行管理
     * 该数组存储信息结构：商品编号、商品描述、数量、价格、小计
     * 总金额为表的amout字段
     * @param orderId 订单编号
     * @return OrderBo 包含订单详细信息的数据模型
     */
    OrderModel queryOrdersByOrderId(String orderId);

    /**
     * 向数据库插入订单，OrdersModel数据模型承载订单元素
     * 订单添加成功，返回订单概略列表
     * 订单添加失败，抛出SQLException异常，由购物车项目组负责接受，并进行事务回滚
     * @param  sql1 向订单表插入数据
     * @param  sql2 向订单与商品关联表插入数据
     * @param userId 用户ID
     * @return 更新后的订单列表（需要支持分页，待实现）
     */
    List<OrderModel> saveOrder(String sql1, String sql2, String userId) throws SQLException;

}
